package com.ffcs.crmd.tsp.server.jdbc.entity;

/**
 * 
 * 功能说明:任务实体类
 *
 * @author ZHONGFUHUA
 * 
 * @since 1.0.0-SNAPSHOT
 *
 */
public class Job {
    
    /**
     * 主键
     */
    private Long    id;
    
    /**
     * 任务名称
     */
    private String  name;
    
    /**
     * 任务类
     */
    private String  jobClass;
    
    /**
     * 任务描述
     */
    private String  description;
    
    /**
     * cron表达式
     */
    private String  cronExpression;
    
    /**
     * 集群名称
     */
    private String  clusterName;
    
    /**
     * 任务组名称
     */
    private String  jobGroupName;
    
    /**
     * 执行端标识
     */
    private String  identity;
    
    /**
     * 任务组ID
     */
    private Long    jobGroupId;
    
    /**
     * 重复间隔
     */
    private Long    repeatInterval;
    
    /**
     * 任务运行超时时间
     */
    private Long    executeTimeout;
    
    /**
     * 死任务重置延迟时间    -1不延迟
     */
    private Long    resetDeathDelayTime;
    
    /**
     * 任务类型 0：无状态  1：有状态   2:可中断任务
     */
    private Short   type;
    
    /**
     * 周期类型 0：普通周期  1：cron周期
     */
    private Short   repeatType;
    
    /**
     * 恢复错过任务策略
     * 0：立即恢复  6：忽略
     */
    private Short   misfireInstruction;
    
    /**
     * 是否可恢复
     * 0:不可恢复  1：可恢复
     */
    private Short   shouldRecover;
    
    /**
     * 超时策略
     * 0：忽略   1：转移    2：强制转移
     */
    private Short   timeoutPolicy;
    
    /**
     * 优先级
     */
    private Short   priority;
    
    /**
     * 重复次数
     */
    private Integer repeatCount;
    
    /**
     * 任务已触发的缓存上限数量
     */
    private Integer bufferSizeLimit;
    
    /**
     * 页数
     */
    private Integer pageNumber;
    
    /**
     * 页大小
     */
    private Integer pageSize;
    
    /**
     * 功能说明: 获取
     *
     * @return pageSize 
     */
    public Integer getPageSize() {
        return pageSize;
    }
    
    /**
     * 功能说明: 获取主键
     *
     * @return id 主键
     */
    public Long getId() {
        return id;
    }
    
    /**
     * 功能说明: 设置主键
     *
     * @param id 主键 
     */
    public void setId(Long id) {
        this.id = id;
    }
    
    /**
     * 功能说明: 获取任务名称
     *
     * @return name 任务名称
     */
    public String getName() {
        return name;
    }
    
    /**
     * 功能说明: 设置任务名称
     *
     * @param name 任务名称 
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /**
     * 功能说明: 获取任务类
     *
     * @return jobClass 任务类
     */
    public String getJobClass() {
        return jobClass;
    }
    
    /**
     * 功能说明: 设置任务类
     *
     * @param jobClass 任务类 
     */
    public void setJobClass(String jobClass) {
        this.jobClass = jobClass;
    }
    
    /**
     * 功能说明: 获取任务描述
     *
     * @return description 任务描述
     */
    public String getDescription() {
        return description;
    }
    
    /**
     * 功能说明: 设置任务描述
     *
     * @param description 任务描述 
     */
    public void setDescription(String description) {
        this.description = description;
    }
    
    /**
     * 功能说明: 获取cron表达式
     *
     * @return cronExpression cron表达式
     */
    public String getCronExpression() {
        return cronExpression;
    }
    
    /**
     * 功能说明: 设置cron表达式
     *
     * @param cronExpression cron表达式 
     */
    public void setCronExpression(String cronExpression) {
        this.cronExpression = cronExpression;
    }
    
    /**
     * 功能说明: 获取集群名称
     *
     * @return clusterName 集群名称
     */
    public String getClusterName() {
        return clusterName;
    }
    
    /**
     * 功能说明: 设置集群名称
     *
     * @param clusterName 集群名称 
     */
    public void setClusterName(String clusterName) {
        this.clusterName = clusterName;
    }
    
    /**
     * 功能说明: 获取任务组名称
     *
     * @return jobGroupName 任务组名称
     */
    public String getJobGroupName() {
        return jobGroupName;
    }
    
    /**
     * 功能说明: 设置任务组名称
     *
     * @param jobGroupName 任务组名称 
     */
    public void setJobGroupName(String jobGroupName) {
        this.jobGroupName = jobGroupName;
    }
    
    /**
     * 功能说明: 获取执行端标识
     *
     * @return identity 执行端标识
     */
    public String getIdentity() {
        return identity;
    }
    
    /**
     * 功能说明: 设置执行端标识
     *
     * @param identity 执行端标识 
     */
    public void setIdentity(String identity) {
        this.identity = identity;
    }
    
    /**
     * 功能说明: 获取任务组ID
     *
     * @return jobGroupId 任务组ID
     */
    public Long getJobGroupId() {
        return jobGroupId;
    }
    
    /**
     * 功能说明: 设置任务组ID
     *
     * @param jobGroupId 任务组ID 
     */
    public void setJobGroupId(Long jobGroupId) {
        this.jobGroupId = jobGroupId;
    }
    
    /**
     * 功能说明: 获取重复间隔
     *
     * @return repeatInterval 重复间隔
     */
    public Long getRepeatInterval() {
        return repeatInterval;
    }
    
    /**
     * 功能说明: 设置重复间隔
     *
     * @param repeatInterval 重复间隔 
     */
    public void setRepeatInterval(Long repeatInterval) {
        this.repeatInterval = repeatInterval;
    }
    
    /**
     * 功能说明: 获取任务运行超时时间
     *
     * @return executeTimeout 任务运行超时时间
     */
    public Long getExecuteTimeout() {
        return executeTimeout;
    }
    
    /**
     * 功能说明: 设置任务运行超时时间
     *
     * @param executeTimeout 任务运行超时时间 
     */
    public void setExecuteTimeout(Long executeTimeout) {
        this.executeTimeout = executeTimeout;
    }
    
    /**
     * 功能说明: 获取死任务重置延迟时间-1不延迟
     *
     * @return resetDeathDelayTime 死任务重置延迟时间-1不延迟
     */
    public Long getResetDeathDelayTime() {
        return resetDeathDelayTime;
    }
    
    /**
     * 功能说明: 设置死任务重置延迟时间-1不延迟
     *
     * @param resetDeathDelayTime 死任务重置延迟时间-1不延迟 
     */
    public void setResetDeathDelayTime(Long resetDeathDelayTime) {
        this.resetDeathDelayTime = resetDeathDelayTime;
    }
    
    /**
     * 功能说明: 获取任务类型0：无状态1：有状态2:可中断任务
     *
     * @return type 任务类型0：无状态1：有状态2:可中断任务
     */
    public Short getType() {
        return type;
    }
    
    /**
     * 功能说明: 设置任务类型0：无状态1：有状态2:可中断任务
     *
     * @param type 任务类型0：无状态1：有状态2:可中断任务 
     */
    public void setType(Short type) {
        this.type = type;
    }
    
    /**
     * 功能说明: 获取周期类型0：普通周期1：cron周期
     *
     * @return repeatType 周期类型0：普通周期1：cron周期
     */
    public Short getRepeatType() {
        return repeatType;
    }
    
    /**
     * 功能说明: 设置周期类型0：普通周期1：cron周期
     *
     * @param repeatType 周期类型0：普通周期1：cron周期 
     */
    public void setRepeatType(Short repeatType) {
        this.repeatType = repeatType;
    }
    
    /**
     * 功能说明: 获取恢复错过任务策略0：立即恢复6：忽略
     *
     * @return misfireInstruction 恢复错过任务策略0：立即恢复6：忽略
     */
    public Short getMisfireInstruction() {
        return misfireInstruction;
    }
    
    /**
     * 功能说明: 设置恢复错过任务策略0：立即恢复6：忽略
     *
     * @param misfireInstruction 恢复错过任务策略0：立即恢复6：忽略 
     */
    public void setMisfireInstruction(Short misfireInstruction) {
        this.misfireInstruction = misfireInstruction;
    }
    
    /**
     * 功能说明: 获取是否可恢复0:不可恢复1：可恢复
     *
     * @return shouldRecover 是否可恢复0:不可恢复1：可恢复
     */
    public Short getShouldRecover() {
        return shouldRecover;
    }
    
    /**
     * 功能说明: 设置是否可恢复0:不可恢复1：可恢复
     *
     * @param shouldRecover 是否可恢复0:不可恢复1：可恢复 
     */
    public void setShouldRecover(Short shouldRecover) {
        this.shouldRecover = shouldRecover;
    }
    
    /**
     * 功能说明: 获取超时策略0：忽略1：转移2：强制转移
     *
     * @return timeoutPolicy 超时策略0：忽略1：转移2：强制转移
     */
    public Short getTimeoutPolicy() {
        return timeoutPolicy;
    }
    
    /**
     * 功能说明: 设置超时策略0：忽略1：转移2：强制转移
     *
     * @param timeoutPolicy 超时策略0：忽略1：转移2：强制转移 
     */
    public void setTimeoutPolicy(Short timeoutPolicy) {
        this.timeoutPolicy = timeoutPolicy;
    }
    
    /**
     * 功能说明: 获取优先级
     *
     * @return priority 优先级
     */
    public Short getPriority() {
        return priority;
    }
    
    /**
     * 功能说明: 设置优先级
     *
     * @param priority 优先级 
     */
    public void setPriority(Short priority) {
        this.priority = priority;
    }
    
    /**
     * 功能说明: 获取重复次数
     *
     * @return repeatCount 重复次数
     */
    public Integer getRepeatCount() {
        return repeatCount;
    }
    
    /**
     * 功能说明: 设置重复次数
     *
     * @param repeatCount 重复次数 
     */
    public void setRepeatCount(Integer repeatCount) {
        this.repeatCount = repeatCount;
    }
    
    /**
     * 功能说明: 获取任务已触发的缓存上限数量
     *
     * @return bufferSizeLimit 任务已触发的缓存上限数量
     */
    public Integer getBufferSizeLimit() {
        return bufferSizeLimit;
    }
    
    /**
     * 功能说明: 设置任务已触发的缓存上限数量
     *
     * @param bufferSizeLimit 任务已触发的缓存上限数量 
     */
    public void setBufferSizeLimit(Integer bufferSizeLimit) {
        this.bufferSizeLimit = bufferSizeLimit;
    }
    
    /**
     * 功能说明: 设置
     *
     * @param pageSize  
     */
    public void setPageSize(Integer pageSize) {
        if (pageSize < 0) {
            this.pageSize = 0;
        } else {
            this.pageSize = pageSize;
        }
    }
    
    /**
     * 功能说明: 获取
     *
     * @return pageNumber 
     */
    public Integer getPageNumber() {
        return pageNumber;
    }
    
    /**
     * 功能说明: 设置
     *
     * @param pageNumber  
     */
    public void setPageNumber(Integer pageNumber) {
        if (pageNumber < 0) {
            this.pageNumber = 1;
        } else {
            this.pageNumber = pageNumber;
        }
    }
    
}
